This invention relates to media server systems. More particularly, this invention relates to providing analog output from a multiple channel media server system.
A typical media server system consists of a video server connected to clients via a high speed network. The media server is capable of delivering video to these clients for real-time playback, the video delivery being client driven. Clients communicate with the server to control video play, playback speed (normal, fast-forward, rewind, stop, pause), and build playlists. All references to video and video data herein include the corresponding audio and audio data.
The media server is generally a combination of standard server hardware and software that is optimized for and dedicated to the storage and delivery of digital video and audio streams. One prior art example of such a media server is the direct satellite broadcast system. The direct satellite broadcast system broadcasts digital streams which are decoded at the receiver end by a set-top box. As digital streams are delivered to the viewer, an expensive converter is required in the set-top box to decompress and decode the digital streams.
In another prior art media server system, the digital Sun(trademark) MediaCenter(trademark) manufactured by Sun Microsystems Computer Company of Mountain View, California, the server software includes a kernel, network interface drivers dedicated to continuous-media output, a Media File System (MFS) optimized for the demands of the delivery of isochronous bit streams, a Media Stream Manager (MSM) that controls the playback of multimedia streams that are stored on the media server, and a Content Manager (CM) that allows users to move content between servers or between a server and a client. The Sun(trademark) MediaCenter(trademark) server delivers Motion Picture Experts Group (MPEG) bit streams at a constant bit rate. The content of the streams are stored on an array of disks. The server guarantees that, unless the server hardware fails, once a stream request is accepted, it will be delivered at the specified constant bit rate until the stream ends or the server is told to stop.
Some prior art media servers are designed to output digital streams using asynchronous transfer mode (ATM) or local-area networks (LAN). In an ATM environment, one or more media servers are directly connected to an ATM switch via ATM host adapters. Digital video streams are sent to clients using ATM virtual circuits. In the LAN environment, each media server is connected on one high-speed 100BaseT subnetwork via one or more ethernet host adapters. Digital video streams are sent to their destinations using LAN packets. Destination clients can access the video streams by connecting directly to one of the 100BaseT networks.
In the previously discussed digital Sun(trademark) MediaCenter (trademark) server, the Media Stream Manager (MSM) that provides users access to the server uses a MSM Client Application Programmer""s Interface (MSMC API) that allows the manipulation of video stream playback on the server. The MSM is a layer of application server software that allows the user to control and manipulate playback of video streams using the MSMC API. For example, it implements the functionality that enables fast forward, rewind, and other operations on video streams. The MSM is layered directly on top of the MFS.
A first scenario of the MSMC API""s position in a prior art digital server environment consists of a workstation client using the MSMC API to control the playback of digital video streams to itself. A second scenario of the MSMC API""s position in a prior art digital server environment consists of a non-video on-demand application that uses the MSMC API to control the playback of digital video streams to remote clients. A third scenario of the MSMC API""s position in a prior art digital server environment consists of a video on-demand application that acts as a proxy to translate control commands originating from a set-top into equivalent MSMC API calls to the media server. The media server plays the digital video streams to the set-top directly, but the control commands from the set-top are routed via the proxy application, which translates the set-top command control protocol to the MSMC API.
Full-motion uncompressed digital video demands a large storage space, and a high data transfer rate. Thus, the digital video is compressed before storing it on a video server. The MPEG-1 and MPEG-2 are commonly used encoding standards for representing digitally encoded and compressed video and audio streams. A client wishing to playback a video stored on a media server must decompress and decode the digital video stream delivered by the video server. Decompressing and decoding by the client requires a great deal of computer processing and a large amount of computer memory. Consequently, it is desirable to decompress and decode the digital video prior to delivery to a client so as to deliver analog video to the client. This allows delivery of video in the existing cable network infrastructure. It also eliminates the need for an expensive MPEG converter in the set-top box at the user client receiver.
However, as the digital video is decompressed and decoded prior to delivery to a client, the client is required to remotely interact with the media server system using a set-top box to indicate program selections. These client program selections are used to control program delivery, so it is desirable for the media server to select and communicate the appropriate control bits to the MPEG converter of the media server in order to decode and present to the viewer the selected program materials. Setting of control bits on a decoding channel is time consuming. When there is only one central processing unit per MPEG decoder, setting control bits for one converter channel can adversely affect playback on other converter channels due to data starvation. Data starvation on a converter channel will cause an interruption of video stream delivery to the client on that channel. Consequently, it is desirable to reduce the probability of interruption of video stream delivery as a result of data starvation.
A method and apparatus for delivering analog data on demand from a multiple channel digital media server are provided. According to one aspect of the invention, a digital data stream is admitted to a media server in response to a user selecting a program for playback. Bandwidth on the media server is reserved in order to deliver the digital data stream at a specified bitrate. A data structure is initialized and maintained for the admitted digital data stream, the data structure controlling the conversion of the admitted digital data stream to an analog data stream on the converter channel. The data structure initialization comprises initializing a state of the admitted digital data stream and a control bit cache flag at a first requested state change for the admitted digital data stream, typically a play command issued by the user. A number of control bits of a converter channel are also initialized using the converter control channel at a first requested state change of the admitted digital data stream. The data structure prevents the reinitialization of the control bits of the converter channel during state changes of the admitted digital data streams.
In one embodiment the media server comprises a converter having at least one control channel and at least one converter channel. The converter channel has an initialized number of control bits. Moreover, the media server comprises a data structure for each admitted digital data stream. The data structure controls the conversion of the admitted digital data streams to analog data streams on the converter channels. The data structure prevents reinitialization of the control channel control bits during state changes of the admitted digital data streams.
These and other features, aspects, and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description and appended claims which follow.